Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

199
Views
Código abreviado de WooCommerce para ajaxificar el mensaje que muestra: "Compre X más productos para obtener un descuento"

Después de una búsqueda profunda, creé un código abreviado de WooCommerce. El propósito de esto es mostrar el mensaje "Compre X más productos para obtener un descuento".

Mi código:

 add_shortcode('check', 'custommessage'); function custommessage() { $items_count = WC()->cart->get_cart_contents_count(); $min_count = 6; if( $items_count < $min_count ){ echo sprintf('%s products more for discount' , $min_count - $items_count ); } }

En la página del carrito de WooComerce, después de agregar X productos al carrito o eliminar la cantidad, funciona y actualiza automáticamente el mensaje

Pero cuando coloco el código abreviado (en el carrito lateral) no actualiza automáticamente el conteo de X. Aunque también está impulsado por AJAX.

¿Algún consejo de cómo puedo solucionar esto?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Para ajaxificar su mensaje para que se actualice cuando se agrega/elimina un artículo (a través de ajax) use el enlace de filtro woocommerce_add_to_cart_fragments

Entonces obtienes:

 function custom_message() { // Initialize $message = __( 'Default message', 'woocommerce' ); // True if ( WC()->cart ) { // Get number of items in the cart. $items_count = WC()->cart->get_cart_contents_count(); $min_count = 6; if ( $items_count < $min_count ) { $message = sprintf( __( '%s products more for discount', 'woocommerce' ), $min_count - $items_count ); } else { $message = __( 'Some message', 'woocommerce' ); } } return $message; } // Refreshing on cart ajax events function filter_woocommerce_add_to_cart_fragments( $fragments ) { $fragments['div.display-message'] = '<div class="display-message">' . custom_message() . '</div>'; return $fragments; } add_filter( 'woocommerce_add_to_cart_fragments', 'filter_woocommerce_add_to_cart_fragments', 10, 1 );

1) Luego, para mostrar esto a través de un código abreviado, use:

 function display_my_message() { return '<div class="display-message">' . custom_message() . '</div>'; } // Register shortcode add_shortcode( 'display_message', 'display_my_message' );

USO DE CÓDIGO CORTO

En una página existente:

[display_message]

O en PHP:

echo do_shortcode("[display_message]");

O

2) Para mostrar el mensaje a través de cualquier gancho deseado (en este ejemplo muestro 2 ganchos. 1 en la página del carrito y 1 en la página de un solo producto, se adapta a sus necesidades). Utilizar:

 // Display message via the desired hooks function display_message() { echo '<div class="display-message">' . custom_message() . '</div>'; } add_action( 'woocommerce_before_shop_loop', 'display_message', 10, 0 ); add_action( 'woocommerce_before_add_to_cart_form', 'display_message', 10, 0 );
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!